package com.atguigu.exam;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

/**
 * 网络聊天功能（50分）
 用网络编程编写一个服务端（5分）
 用网络编写一个客户端（5分）
 客户端输入 client，服务端响应 I'SERVER!（40分）
 * @author xbd
 * @create 2021-05-31 21:22
 */
public class ClientConnTest {
    public void connServer(){
        //建立与服务器端的链接
        Socket socket = null;
        PrintWriter pw = null;
        BufferedReader in = null;
        try {
            InetAddress inet = InetAddress.getByName("127.0.0.1");
            socket = new Socket(inet,8899);
            //监听键盘事件，等待用户输入字符串
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            //得到Socket的输入流封装成一个PrintWriter
            pw = new PrintWriter(socket.getOutputStream(), true);
            //把用户输入的字符写出去
            pw.println(br.readLine());
            //得到服务器端的输入流并封装成BufferedReader对象
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            System.out.println(in.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭相应的资源
            if(in != null){
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(pw != null){
                pw.close();
            }
            if(socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        new ClientConnTest().connServer();
    }
}
